import re

def mobile(mobile_str):

    if re.match(r'^1[3-9]\d{9}$', mobile_str):
        return mobile_str
    else:
        raise ValueError('{} is not a valid mobile'.format(mobile_str))

def regex(pattern):
    """
    正则校验
    :param pattern: str 正则表达式
    :return: 返回一个函数
    """
    def validate(value_str):
        """
        具体校验一个字符串，根据自定义的正则表达式
        :param value_str: 验证的值
        :return:
        """
        if re.match(pattern, value_str):
            return value_str
        else:
            raise ValueError('{} is invalid params'.format(value_str))
    return validate

def email(email_str):

    if re.match(r'^[0-9a-zA-Z_]{0,19}@[0-9a-zA-Z]{1,13}\.[com,cn,net]{1,3}$', email_str):
        return email_str
    else:
        raise ValueError('{} is not a valid emali'.format(email_str))
